home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Games Collection 1 / software vault.zip / software vault / CDR10 / SPX20.ZIP / SPX_INT.ZIP / SPX_VGA.INT < prev   
Text File  |  1993-09-14  |  6KB  |  147 lines

  1. Unit spx_vga;
  2.  
  3. {$O+,X+ }
  4. { SPX Library Version 2.0  Copyright 1993 Scott D. Ramsay }
  5.  
  6. Interface
  7.  
  8. Uses dos,spx_dos,spx_obj,spx_fnc;
  9.  
  10. const
  11.   MaxPages   = 8;
  12.   WinMinX    : integer = 0;
  13.   WinMinY    : integer = 0;
  14.   WinMaxX    : integer = 319;
  15.   WinMaxY    : integer = 199;
  16.   NormalPut  = 0;
  17.   CopyPut    = 0;
  18.   XORPut     = 1;
  19.   OrPut      = 2;
  20.   AndPut     = 3;
  21.   initproc   : pointer = nil;
  22. { Image loding constants }
  23.   img_noerror   = 0;    { no error }
  24.   img_notbmp    = 1;    { not a win3.0 BMP file }
  25.   img_notpcx    = 2;    { not a 256 color PCX file }
  26.   img_errorload = 3;    { file not found or open error }
  27.   img_errorread = 4;    { other disk read error }
  28.   img_badcolor  = 5;    { not a 256 color BMP file }
  29.   img_errorsave = 6;    { error saving PTR file }
  30.   img_erralloc  = 7;    { memory allocation error }
  31.  
  32.  
  33. type
  34.   RGBType    = record
  35.                  red,green,blue : byte;
  36.                end;
  37.   RGBlist    = array[0..255] of RGBType;
  38.   PtrRec     = record
  39.                  ofs,seg : word;
  40.                end;
  41.   VidHdrType = record
  42.                  position,count : word;
  43.                end;
  44.   cpu_type   = (c8086,c80186,c80286,c80286p,
  45.                 c80386,c80386p,c80486,c80486p,undefined);
  46.   Ppt        = ^Tpt;
  47.   Tpt        = object(Tobjs)
  48.                  x,y : integer;
  49.                  constructor init(px,py:integer);
  50.                end;
  51.   Ppoly      = ^Tpoly;
  52.   Tpoly      = object
  53.                  phead,ptail : plist;
  54.                  points      : integer;
  55.                  constructor init;
  56.                  procedure addpoint(px,py:integer);virtual;
  57.                  function numpoints:integer;virtual;
  58.                  destructor done;virtual;
  59.                end;
  60.  
  61.  
  62.  
  63. var
  64.   PrevMode,                                      { previous mode }
  65.   crpg          : byte;                          { current page number }
  66.   cpu           : cpu_type;                      { current cpu }
  67.   scnseg,scnofs : word;                          { current page address }
  68.   pages         : array[1..MaxPages] of pointer; { page pointers }
  69.   thdmat        : set of byte;
  70.   vspcnt,                                        { vsp last load count }
  71.   maxpage       : word;                          { pages used }
  72.   rgb256,                                        { palette for loaded images }
  73.   zdc           : RGBlist;                       { all black palette }
  74.   YOff          : array[0..199] of word;         { Row offset table }
  75.  
  76. procedure MatteVsp(var from,too);
  77. procedure VSinc;
  78. procedure SetDefaultColors;
  79. procedure Switch(var a,b:integer);
  80. procedure Parse(var x,y:integer);
  81. function BuffSize(x,y:integer):word;
  82. function ImageSize(var image):word;
  83. procedure ImageDims(var image;var x,y:integer);
  84. procedure SetPtr(var i:PtrRec;var buff);
  85. function pt(x,y:integer):word;
  86. procedure OpenMode(npages:byte);
  87. function Point(x,y:integer;pg:byte):byte;
  88. procedure Pset(x,y:integer;n:byte);
  89. procedure fPcopy(var from,too);
  90. procedure Pcopy(from,too:byte);
  91. procedure CopyRect(x1,y1,x2,y2:integer;var from,too);
  92. procedure fwCopyRect(x1,y1,x2,y2:integer;var from,too);
  93. procedure SwapRect(x1,y1,x2,y2:integer;from,too:byte);
  94. procedure Line_clip(x1,y1,x2,y2:integer;n:byte);
  95. procedure Line(x1,y1,x2,y2:integer;n:byte);
  96. procedure Bar(x1,y1,x2,y2:integer;n:byte);
  97. procedure Rectangle(x1,y1,x2,y2:integer;n:byte);
  98. procedure Circle(x1,y1,r:integer;n:byte);
  99. procedure Ellipse(xc,yc,a0,b0:integer;c:byte);
  100. procedure ftput(x,y:integer;var buff;center:boolean);
  101. procedure ftput_clip(x,y:integer;var buff;center:boolean);
  102. procedure cls(b:byte);
  103. procedure CloseMode;
  104. procedure fget(x1,y1,x2,y2:integer;var image);
  105. procedure fput(x1,y1:integer;var image;center:boolean);
  106. procedure fput_mask(x1,y1:integer;var image;rmw:byte);
  107. procedure fput_clip(x,y:integer;var buff;center:boolean);
  108. procedure SetPageActive(page:byte);
  109. procedure GetColor(num:byte;var red,green,blue:byte);
  110. procedure SetColor(num,red,green,blue:byte);
  111. procedure fSetColors(var colors);
  112. procedure fGetColors(var colors);
  113. procedure FadeIn(steps:word;var color);
  114. procedure FadeOut(steps:word;var color);
  115. procedure ColorsChange(var color:rgblist;filter:rgbtype);
  116. procedure ColorCycle(var colors:rgblist;start:byte;count:integer;fwd:boolean);
  117. function LoadColors(filename:string;var colors;count:integer):integer;
  118. function SaveColors(filename:string;var colors;count:integer):integer;
  119. procedure Paint(x,y:integer;n:byte);
  120. procedure CopyTo(x1,y1,x2,y2,x,y:integer;var from,too);
  121. function LoadVSP(fn:string;var buff):integer;
  122. function FileVSP(var fil:file;var buff;size:longint):integer;
  123. procedure ScaleVSP(var src,dest;nx,ny:word);
  124. function AnalyzeScreen:byte;
  125. procedure MemWrite(var source,dest;size:word;var off:longint);
  126. procedure MemRead(var source,dest;size:word;var off:longint);
  127. procedure fwput(x1,y1:integer;var image);
  128. procedure moveDW(var source,dest;size:word);
  129. procedure fputDW(x:word;var buff);
  130. procedure PcopyDW(var from,too);
  131. procedure fillDW(var dest;c:word;v:byte);
  132. procedure clsDW(c:byte);
  133. procedure displayer(x,y:integer;var pic,virt;plv:byte);
  134. procedure eraselayer(x,y:integer;bkpage:byte;var pic,virt;plv:byte);
  135. procedure dispvirt(x,y:integer;var pic,virt;plv:byte);
  136. procedure displayer_clip(x,y:integer;var pic,virt;plv:byte);
  137. procedure dispvirt_clip(x,y:integer;var pic,virt;plv:byte);
  138. procedure erasevirt(x,y:integer;var pic,virt;plv:byte);
  139. procedure copyvirt(x,y:integer;var pic,v1,v2;plv:byte);
  140. procedure fhLine(x1,x2,y:integer;c:byte);
  141. procedure FillPoly(offx,offy:integer;poly:Tpoly;c:byte);
  142. procedure DrawPoly(offx,offy:integer;poly:Tpoly;c:byte);
  143. procedure drawptr(var p;merge:boolean;sz:longint);
  144. function loadPTR(fn:string;merge:boolean):integer;
  145. function savePTR(fn:string):integer;
  146.  
  147.